﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class PersonNull
{
public:
	void show()
	{
		cout << "PersonNull show！" << endl;
	}
	void showAge()
	{
		//cout << m_Age << endl;
		//cout << this->m_Age << endl;
		if (this == NULL)
		{
			return;
		}
		cout << this->m_Age << endl;
	}

	int m_Age;
};
void testNullPointer()
{
	//2.如果没有用到this->调用成员函数或变量，则空指针是可以使用的；否则，就要加强检测！
	PersonNull* p = NULL;
	p->show();//PersonNull show！
	//1.系统会默认加上PersonNull* this，即this->m_Age，会是Null->m_Age；项目直接就崩掉了；
	//p->showAge();
	p->showAge();
}

//main271：空指针访问成员函数
int main271()
{
	testNullPointer();

	system("pause");
	return EXIT_SUCCESS;
}